package br.com.localab.usuario.controlador;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.hibernate.Session;

import br.com.localab.fachada.Fachada;
import br.com.localab.usuario.modelo.Usuario;
import br.com.localab.util.autenticar.FacesContextUtil;

@ManagedBean
@ViewScoped
public class EditarUsuarioMB implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private String matricula;
	private String nome;
	private String cpf;
	private String status;
	private boolean administrador;
	private boolean professor;
	private String email;
	private Usuario usuario;
	private Fachada fachada;
	private Session s;

	@PostConstruct
	public void init() {
		this.usuario = (Usuario) FacesContextUtil
				.getSessionAttribute("editarUsuario");
		cpf = usuario.getCpf();
		matricula = usuario.getMatricula();
		nome = usuario.getNome();
		administrador = usuario.isAdministrador();
		professor = usuario.isProfessor();
		email = usuario.getEmail();
		FacesContextUtil.setSessionAttribute("editarUsuario", null);
	}

	public String editar() {
		s = FacesContextUtil.getRequestSession();
		fachada = new Fachada(s);
		String mensagem = "";
		Usuario usuario = fachada.usuarioProcurar("cpf",cpf);
		usuario.setCpf(cpf);
		usuario.setMatricula(matricula);
		usuario.setNome(nome);
		usuario.setEmail(email);
		usuario.setAtivo(true);
		usuario.setAdministrador(administrador);
		usuario.setProfessor(professor);
		mensagem = fachada.usuarioEditar(usuario);
		FacesContextUtil.setMessageInformacao("Info", mensagem);
		limpar();
		return null;
	}

	public void limpar() {
		matricula = "";
		nome = "";
		cpf = "";
		status = "";
		administrador = false;
		professor = false;
		email = "";
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String getMatricula() {
		return matricula;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public boolean isAdministrador() {
		return administrador;
	}

	public void setAdministrador(boolean administrador) {
		this.administrador = administrador;
	}

	public boolean isProfessor() {
		return professor;
	}

	public void setProfessor(boolean professor) {
		this.professor = professor;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

}
